using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using clf.weighing.entity;

namespace weighing
{

    public class SendCarBillVo : BaseVo
    {
        #region Constract
        public SendCarBill mSendCarBill;
        public SendCarBillVo(SendCarBill sendCarBill)
        {
            mSendCarBill = sendCarBill;
        }
        #endregion


        /// <summary>
        /// 可空:NO
        /// </summary>

        public Int64 Id
        {
            get
            {
                return mSendCarBill.id;
            }
            set
            {
                mSendCarBill.id = value;
                OnPropertyChanged(this, nameof(Id));
            }
        }

        public String Number
        {
            get
            {
                return mSendCarBill.number;
            }
            set
            {
                mSendCarBill.number = value;
                OnPropertyChanged(this, nameof(Number));
            }
        }

        /// <summary>
        /// 可空:YES
        /// </summary>

        public Int64? CarId
        {
            get
            {
                return mSendCarBill.carId;
            }
            set
            {
                mSendCarBill.carId = value;
                OnPropertyChanged(this, nameof(CarId));
            }
        }
        /// <summary>
        /// Ic 卡的编号 ，高频卡 EPC
        /// </summary>
        public String IcEpc
        {
            get
            {
                return mSendCarBill.icEpc;
            }
            set
            {
                mSendCarBill.icEpc = value;
                OnPropertyChanged(this, nameof(IcEpc));
            }
        }


        /// <summary>
        /// 可空:YES
        /// </summary>

        public String CarNumber
        {
            get
            {
                return mSendCarBill.carNumber;
            }
            set
            {
                mSendCarBill.carNumber = value;
                OnPropertyChanged(this, nameof(CarNumber));
            }
        }

        /// <summary>
        /// 可空:YES
        /// </summary>

        public String Driver
        {
            get
            {
                return mSendCarBill.driver;
            }
            set
            {
                mSendCarBill.driver = value;
                OnPropertyChanged(this, nameof(Driver));
            }
        }

        /// <summary>
        /// 可空:YES
        /// </summary>

        public String DriverMobile
        {
            get
            {
                return mSendCarBill.driverMobile;
            }
            set
            {
                mSendCarBill.driverMobile = value;
                OnPropertyChanged(this, nameof(DriverMobile));
            }
        }

        public DateTime? AddTime
        {
            get
            {
                return mSendCarBill.addTime;
            }
            set
            {
                mSendCarBill.addTime = value;
                OnPropertyChanged(this, nameof(AddTime));
            }
        }

        public DateTime? UpdateTime
        {
            get
            {
                return mSendCarBill.updateTime;
            }
            set
            {
                mSendCarBill.updateTime = value;
                OnPropertyChanged(this, nameof(UpdateTime));
            }
        }


        /// <summary>
        /// 可空:YES
        /// </summary>

        public DateTime? EffectiveDate
        {
            get
            {
                return mSendCarBill.effectiveDate;
            }
            set
            {
                mSendCarBill.effectiveDate = value;
                OnPropertyChanged(this, nameof(EffectiveDate));
            }
        }

        /// <summary>
        /// 可空:YES
        /// </summary>

        public DateTime? ExpiryDate
        {
            get
            {
                return mSendCarBill.expiryDate;
            }
            set
            {
                mSendCarBill.expiryDate = value;
                OnPropertyChanged(this, nameof(ExpiryDate));
            }
        }

        /// <summary>
        /// 可空:YES
        /// </summary>

        public DateTime? InFactoryTime
        {
            get
            {
                return mSendCarBill.inFactoryTime;
            }
            set
            {
                mSendCarBill.inFactoryTime = value;
                OnPropertyChanged(this, nameof(InFactoryTime));
            }
        }

        /// <summary>
        /// 可空:YES
        /// </summary>

        public DateTime? OutFactoryTime
        {
            get
            {
                return mSendCarBill.outFactoryTime;
            }
            set
            {
                mSendCarBill.outFactoryTime = value;
                OnPropertyChanged(this, nameof(OutFactoryTime));
            }
        }

        /// <summary>
        /// 注释:生效状态 0 未生效 1 生效中 2 过期
        /// 可空:YES
        /// 默认值:0
        /// </summary>

        public Int32? EffectiveStatus
        {
            get
            {
                return mSendCarBill.effectiveStatus;
            }
            set
            {
                mSendCarBill.effectiveStatus = value;
                OnPropertyChanged(this, nameof(EffectiveStatus));
            }
        }

        /// <summary>
        /// 注释:称重状态 0未称重 1皮重 2称重完成
        /// 可空:YES
        ///默认值:0
        /// </summary>

        public Int32? WeightStatus
        {
            get
            {
                return mSendCarBill.weightStatus;
            }
            set
            {
                mSendCarBill.weightStatus = value;
                OnPropertyChanged(this, nameof(WeightStatus));
            }
        }

        /// <summary>
        /// 可空:YES
        /// </summary>

        public Int64? WeighingBillId
        {
            get
            {
                return mSendCarBill.weighingBillId;
            }
            set
            {
                mSendCarBill.weighingBillId = value;
                OnPropertyChanged(this, nameof(WeighingBillId));
            }
        }

        /// <summary>
        /// 可空:YES
        /// </summary>

        public String WeighingNumber
        {
            get
            {
                return mSendCarBill.weighingNumber;
            }
            set
            {
                mSendCarBill.weighingNumber = value;
                OnPropertyChanged(this, nameof(WeighingNumber));
            }
        }

        /// <summary>
        /// 可空:YES
        /// </summary>

        public Int64? SendCompanyId
        {
            get
            {
                return mSendCarBill.sendCompanyId;
            }
            set
            {
                mSendCarBill.sendCompanyId = value;
                OnPropertyChanged(this, nameof(SendCompanyId));
            }
        }

        /// <summary>
        /// 可空:YES
        /// </summary>

        public String SendCompanyName
        {
            get
            {
                return mSendCarBill.sendCompanyName;
            }
            set
            {
                mSendCarBill.sendCompanyName = value;
                OnPropertyChanged(this, nameof(SendCompanyName));
            }
        }

        /// <summary>
        /// 可空:YES
        /// </summary>

        public Int64? SendYardId
        {
            get
            {
                return mSendCarBill.sendYardId;
            }
            set
            {
                mSendCarBill.sendYardId = value;
                OnPropertyChanged(this, nameof(SendYardId));
            }
        }

        /// <summary>
        /// 可空:YES
        /// </summary>

        public String SendYardName
        {
            get
            {
                return mSendCarBill.sendYardName;
            }
            set
            {
                mSendCarBill.sendYardName = value;
                OnPropertyChanged(this, nameof(SendYardName));
            }
        }

        /// <summary>
        /// 可空:YES
        /// </summary>

        public Int64? ReceiveCompanyId
        {
            get
            {
                return mSendCarBill.receiveCompanyId;
            }
            set
            {
                mSendCarBill.receiveCompanyId = value;
                OnPropertyChanged(this, nameof(ReceiveCompanyId));
            }
        }

        /// <summary>
        /// 可空:YES
        /// </summary>

        public String ReceiveCompanyName
        {
            get
            {
                return mSendCarBill.receiveCompanyName;
            }
            set
            {
                mSendCarBill.receiveCompanyName = value;
                OnPropertyChanged(this, nameof(ReceiveCompanyName));
            }
        }

        /// <summary>
        /// 可空:YES
        /// </summary>

        public Int64? ReceiveYardId
        {
            get
            {
                return mSendCarBill.receiveYardId;
            }
            set
            {
                mSendCarBill.receiveYardId = value;
                OnPropertyChanged(this, nameof(ReceiveYardId));
            }
        }

        /// <summary>
        /// 可空:YES
        /// </summary>

        public String ReceiveYardName
        {
            get
            {
                return mSendCarBill.receiveYardName;
            }
            set
            {
                mSendCarBill.receiveYardName = value;
                OnPropertyChanged(this, nameof(ReceiveYardName));
            }
        }

        /// <summary>
        /// 可空:YES
        /// </summary>

        public Int64? MaterialId
        {
            get
            {
                return mSendCarBill.materialId;
            }
            set
            {
                mSendCarBill.materialId = value;
                OnPropertyChanged(this, nameof(MaterialId));
            }
        }

        /// <summary>
        /// 可空:YES
        /// </summary>

        public String MaterialName
        {
            get
            {
                return mSendCarBill.materialName;
            }
            set
            {
                mSendCarBill.materialName = value;
                OnPropertyChanged(this, nameof(MaterialName));
            }
        }
        /// <summary>
        /// 注释:规格型号
        /// 可空:YES
        /// </summary>

        public String MaterialSpecification
        {
            get
            {
                return mSendCarBill.materialSpecification;
            }
            set
            {
                mSendCarBill.materialSpecification = value;
                OnPropertyChanged(this, nameof(MaterialSpecification));
            }
        }

        /// <summary>
        /// 注释:过磅员
        /// 可空:YES
        /// </summary>

        public Int64? UserId
        {
            get
            {
                return mSendCarBill.userId;
            }
            set
            {
                mSendCarBill.userId = value;
                OnPropertyChanged(this, nameof(UserId));
            }
        }

        /// <summary>
        /// 注释:过磅员姓名
        /// 可空:YES
        /// </summary>

        public String UserName
        {
            get
            {
                return mSendCarBill.userName;
            }
            set
            {
                mSendCarBill.userName = value;
                OnPropertyChanged(this, nameof(UserName));
            }
        }

        /// <summary>
        /// 可空:YES
        /// </summary>

        public String Remark
        {
            get
            {
                return mSendCarBill.remark;
            }
            set
            {
                mSendCarBill.remark = value;
                OnPropertyChanged(this, nameof(Remark));
            }
        }

        /// <summary>
        /// 可空:YES
        ///默认值:0
        /// </summary>

        public Int32? IsDelete
        {
            get
            {
                return mSendCarBill.isDelete;
            }
            set
            {
                mSendCarBill.isDelete = value;
                OnPropertyChanged(this, nameof(IsDelete));
            }
        }

        /// <summary>
        /// 可空:YES
        /// </summary>

        public DateTime? DeleteTime
        {
            get
            {
                return mSendCarBill.deleteTime;
            }
            set
            {
                mSendCarBill.deleteTime = value;
                OnPropertyChanged(this, nameof(DeleteTime));
            }
        }

        /// <summary>
        /// 可空:YES
        /// </summary>

        public Int64? SyncTime
        {
            get
            {
                return mSendCarBill.syncTime;
            }
            set
            {
                mSendCarBill.syncTime = value;
                OnPropertyChanged(this, nameof(SyncTime));
            }
        }

        /// <summary>
        /// 注释:类型 0 入库 1 出库 100外来过磅
        /// 可空:NO
        ///默认值:1
        /// </summary>

        public Int32 Type
        {
            get
            {
                return mSendCarBill.type.Value;
            }
            set
            {
                mSendCarBill.type = value;
                OnPropertyChanged(this, nameof(Type));
            }
        }

        public string DeleteReason
        {
            get
            {
                return mSendCarBill.deleteReason;
            }
            set
            {
                mSendCarBill.deleteReason = value;
                OnPropertyChanged(this, nameof(DeleteReason));
            }
        }

        public Int32? UpStatus
        {
            get
            {
                return mSendCarBill.upStatus;
            }
            set
            {
                mSendCarBill.upStatus = value;
                OnPropertyChanged(this, nameof(UpStatus));
            }
        }

        public Int32? CreateType
        {
            get
            {
                return mSendCarBill.createType;
            }
            set
            {
                mSendCarBill.createType = value;
                OnPropertyChanged(this, nameof(CreateType));
                OnPropertyChanged(this, nameof(CreateTypeText));
            }
        }
        /// <summary>
        /// 状态（0:使用中; 1:结束）"
        /// </summary>
        public Int32? Status
        {
            get
            {
                return mSendCarBill.status;
            }
            set
            {
                mSendCarBill.status = value;
                OnPropertyChanged(this, nameof(Status));
            }
        }

        public Int64 HouseId
        {
            get
            {
                return mSendCarBill.houseId;
            }
            set
            {
                mSendCarBill.houseId = value;
                OnPropertyChanged(this, nameof(HouseId));
            }
        }
        /// <summary>
        /// 注释:磅房名称
        /// 可空:YES
        /// </summary>

        public String HouseName
        {
            get
            {
                return mSendCarBill.houseName;
            }
            set
            {
                mSendCarBill.houseName = value;
                OnPropertyChanged(this, nameof(HouseName));
            }
        }

        /// <summary>
        /// 注释:合同ID
        /// 可空:YES
        /// 默认值:0
        /// </summary>

        public Int64? ContractId
        {
            get
            {
                return mSendCarBill.contractId;
            }
            set
            {
                mSendCarBill.contractId = value;
                OnPropertyChanged(this, nameof(ContractId));
            }
        }

        /// <summary>
        /// 注释:合同编号
        /// 可空:YES
        /// </summary>

        public String ContractNumber
        {
            get
            {
                return mSendCarBill.contractNumber;
            }
            set
            {
                mSendCarBill.contractNumber = value;
                OnPropertyChanged(this, nameof(ContractNumber));
            }
        }


        #region TEXT
        public string CreateTypeText
        {
            get
            {
                return mSendCarBill.createType ==1 ?"移动端":"客户端";
            }           
        }
        public string StatusText
        {
            get
            {
                return mSendCarBill.status == 1 ? "结束" : "使用中";
            }
        }
        
        #endregion
    }
}
